#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
#include <vector>
#include <functional>
int main() {
    int n;
    cin >> n;
    vector<long long> v(n, 0);
    long long _max = 0;
    //int count = 0;
    for (int i = 0; i < n; i++)
    {
        cin >> v[i];
        // if(v[i]>=0)
        // {
        //     count+=v[i];
        //     _max = max(count,_max);
        // }
        // else{
        //     count=0;
        // }
    }
    //cout<<_max<<endl;
    vector<int> dp(n, 0);
    dp[0] = max<long long>(0, v[0]);
    for (int i = 1; i < n; i++)
    {
        dp[i] = max<long long>(0, dp[i - 1] + v[i]);
        _max = max<long long>(_max, dp[i]);
    }
    cout << _max << endl;

    // vector<vector<int>> dp(n,vector<int>(2,0));
    // dp[0][0] = v[0];
    // for(int i = 1;i<n;i++)
    // {
    //     dp[i][0] = max(dp[i-1][0],dp[i-1][1])+v[i];
    //     dp[i][1] = max(dp[i-1][0],dp[i-1][1]);
    // }
    // cout<<max(dp[n-1][0],dp[n-1][1])<<endl;
    return 0;
}
// 6
#include <iostream>
using namespace std;

int main() {
    int a, h, b, k;
    cin >> a >> h >> b >> k;
    int count = 0;
    int a1 = h / b;
    //int a2 = h%b;
    int b1 = k / a;
    //int b2 = k%a;
    int _min = min(a1, b1);
    //cout<<_min<<endl;
    count += (a + b) * _min;
    //cout<<count<<endl;
    h = h - b * _min;
    k = k - a * _min;
    //cout<<a<<":"<<b<<endl;
    while (true)
    {
        count += (a + b);
        h -= b;
        k -= a;
        if (k <= 0 && h <= 0)
            break;
        else if (k <= 0 && h > 0)
        {
            count += a * 10;
            break;
        }
        else if (k > 0 && h <= 0)
        {
            count += b * 10;
            break;
        }
    }
    cout << count << endl;
    return 0;
}